<?php
/**
 * User: Administrator
 * Time: 2015/10/21 11:17
 */

$arr = [5, 3, 5, 2, 7, 4, 50, 23, 134, 245, 99, 43, 23];

function mySort($arr) {
	$count = count($arr);
	for ($i = 0; $i < $count; $i++) {
		//第一遍循环 ，取出当前的数字($currentNum)
		$currentNum = &$arr[$i];
		for ($j = $i; $j < $count; $j++) {
			//第二遍循环 ，用当前的数字($currentNum)，与后面的所有数字($nextNum)比较
			$nextNum = &$arr[$j];
			//如果顺序错误，就把它们交换过来
			if ($currentNum > $nextNum) {
				$t          = $nextNum;
				$nextNum    = $currentNum;
				$currentNum = $t;
			}
		}
	}
	return $arr;
}

function quickSort($arr) {
	$_size = count($arr);
	//数组个数必须大于1
	if ($_size > 1) {
		$key   = $arr[0]; //设定第一个数为基准点
		$left  = array(); //左边的数组
		$right = array(); //右边的数组
		//遍历数组
		for ($i = 1; $i < $_size; $i++) {
			if ($arr[$i] <= $key) {
				//当小于等于基准点放在left中
				$left[] = $arr[$i];
			} else {
				//当大于基准点放在right中
				$right[] = $arr[$i];
			}
		}
		//递归
		$left  = quickSort($left);
		$right = quickSort($right);
		//合并left，基准点，right
		return array_merge($left, array($key), $right);
	}
	return $arr;
}

$arr = quickSort($arr);
var_dump($arr);